iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 27
1
Mobile Development

Android 開發經驗三十天系列 第 27

[Android 開發經驗三十天]D27一Android Firebase && Crashlytics

  • 分享至 

  • xImage
  •  

不要小看自己,因為人有無限的可能。例如成為完賽鐵人。

Firebase

tags: 鐵人賽

大家安安,今天介紹一下要怎麼將Android Studio連接到 FireBase

Tool -> Firebase -> Analysis

根據紅色框框 conntect to firebase 然後連上自己的google 帳號即可

接著要加分析的 按橘色框框並加上
然後在 Manifest 顯示的主頁面(就是打開是哪個Activity)
那邊加上


 lateinit var firebaseAnalytics: FirebaseAnalytics
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
      //....
        firebaseAnalytics= FirebaseAnalytics.getInstance(this)
        
        }

如果在Android Studio 失敗,請在 FireBase控制台增加
https://console.firebase.google.com/
按下新增專案,取名 --

黃色的是包名,在manifest裡面可以找到
ex : <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.ktforfilemanager">

綠色的是你應用程式要取的名字,我是習慣與包名取相近的

紫色的是你的SHA-1,可以在Gradle ->SinginReport按兩下後找到
記住要的是Debug並非DebugTest!

按完註冊後下一步會給你一json 下載起來,將編譯器模式調成project放在

再按下一步看他要加哪些library
專案層級的 build.gradle (<專案>/build.gradle):





buildscript {
  repositories {
    // Check that you have the following line (if not, add it):
    google()  // Google's Maven repository
  }
  dependencies {
    ...
    // Add this line
    classpath 'com.google.gms:google-services:4.3.3'
  }
}

allprojects {
  ...
  repositories {
    // Check that you have the following line (if not, add it):
    google()  // Google's Maven repository
    ...
  }
}

應用程式層級的 build.gradle (<專案>/<應用程式模組>/build.gradle):





apply plugin: 'com.android.application'
// Add this line
apply plugin: 'com.google.gms.google-services'

dependencies {
  // add the Firebase SDK for Google Analytics
  implementation 'com.google.firebase:firebase-analytics:17.5.0'
  // add SDKs for any other desired Firebase products
  // https://firebase.google.com/docs/android/setup#available-libraries
}

然後在 Manifest 顯示的主頁面(就是打開是哪個Activity)
那邊加上


 lateinit var firebaseAnalytics: FirebaseAnalytics
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
      //....
        firebaseAnalytics= FirebaseAnalytics.getInstance(this)
        
        }

再按下一步讓他偵測,並且移除APP重新安裝,這樣他才能偵測到。。

偵測完就正式連上啦

2.Crashlytics

先配置Gradle
專案層級的gradle

buildscript {
    //...
    repositories {
        google()
        jcenter()
        maven {
            url 'https://maven.fabric.io/public'
        }
    }
    dependencies {

        //.....
        classpath 'com.google.gms:google-services:4.2.0'

        classpath 'io.fabric.tools:gradle:1.26.1'


    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven {
            url 'https://maven.google.com/'
        }
        maven { url 'https://jitpack.io' }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

apply plugin: 'io.fabric'
dependencies {
    //....
    implementation 'com.crashlytics.sdk.android:crashlytics:2.9.6'
    implementation 'com.google.firebase:firebase-core:11.8.0'
   
    //忘記這個幹嘛的了 應該可有可無
    implementation 'com.google.android.gms:play-services-auth:18.0.0'
    implementation 'com.google.http-client:google-http-client-gson:1.26.0'
    implementation('com.google.api-client:google-api-client-android:1.26.0')
            {
                exclude group: 'org.apache.httpcomponents'
            }
    implementation('com.google.apis:google-api-services-drive:v3-rev136-1.25.0')
            {
                exclude group: 'org.apache.httpcomponents'
            }
   
}

接下來到你首頁打開的Activity,加上按鈕做為Crash測試
此時先不要RUN APP

  var button: Button =findViewById(R.id.button)
        button.setOnClickListener {
           // throw Exception("aaaa")
        }

應用層級Gradle
到Crashlytics的主頁面 Crashlytics

按啟用按紐,然後重新安裝APP,讓他偵測
若是很久都沒有,可以移除APP再重裝。。

最後,就成功啦

注:也有曾經嘗試看官方文件做QAQ 但是不知道為甚麼跟著一起加的Crash Log版本 Gradle就是有點問題 ...
如果照文件做可以成功也可以告訴我,讓我檢討一下到底是哪個版本orGradle對沖
今天就先這樣啦~


上一篇
[Android 開發經驗三十天]#D26一Glide教學+小畫家繼續
下一篇
[Android 開發經驗三十天]D28一 Fragment+ViewPager+Tablayout
系列文
Android 開發經驗三十天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言